package cn.tedu._04mybatis.mapper;

import cn.tedu._04mybatis.pojo.entity.Weibo;
import cn.tedu._04mybatis.pojo.vo.*;
import org.apache.ibatis.annotations.*;

import java.util.List;

@Mapper
public interface WeiboMapper {
    /* 1.增:微博表中插入1条数据
      增删改操作:返回值为int
     注意: #{}是占位符, #{属性名}是获取实体类属性值  */
//    @Insert("INSERT INTO weibo(content,created,user_id) VALUES (#{content},#{created},#{userId})")
    boolean insertWeibo(Weibo weibo);

    /*删：微博表中删除一条数据[根据微博id]*/
//    @Delete("DELETE FROM weibo WHERE id=#{wid}")
    int deleteWeiboById(Long wid) ;
    /*改：微博表中修改一条数据 */
//    @Update("UPDATE weibo SET content=#{content},created=#{created},user_id=#{userId} WHERE id=#{id}")
    int updateWeiboById(Weibo weibo);
    /*查：微博表中查询一条数据[根据微博id]*/
//    @Select("SELECT id,content,created,user_id userId FROM weibo WHERE id=#{wid}")
    Weibo selectWeiboById(Long wid);
    /*多数据全字段查询
    查询指定用户发的所有微博信息*/
//    @Select("SELECT id,content,created,user_id userId FROM weibo WHERE user_id=#{uid}")
    List<Weibo> selectWeiboByIdUser(Long uid);
    /*

     */
//    @Select("SELECT content,created FROM weibo WHERE id=#{wid}")
    WeiboVO1 selectWeiboVO1ById (Long wid);
    /*
    查询多条数据部分字段查询
    查询所有微博的内容和用户Id
     */
//    @Select("SELECT content,user_id FROM weibo")
    List<WeiboVO2> selectWeiboVO2ById(Long uid);

    /*
   动态修改：根据微博id动态修改该条微博的信息

    */
    int dynamicUpdate(Weibo weibo);
    int deleteWeiboByIds1(Long[] ids);
    int deleteWeiboByIds2(List<Long> ids);
    /*统计数量*/
    int countWeibo();
    /*
    ResultMap单表
    根据微博ID查询该条微博的id content user_id
     */
    ResultMapVO1 selectMap1(Long wid);
    ResultMapVO2 selectMap2(Long uid);
    ResultMapVO3 selectMap3(Long wid);
    ResultMapVO4 selectMap4(Long wid);

}